맨위로가기

다중 언어 사용자 인터페이스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

다중 언어 사용자 인터페이스(MUI)는 소프트웨어의 사용자 인터페이스를 여러 언어로 제공하기 위한 기술로, 사용자의 언어 설정에 따라 UI를 동적으로 변경한다. MUI는 마이크로소프트에서 개발되었으며, 언어 중립적(LN) 리소스와 언어별(LS) 리소스를 구분하여 관리한다. MUI를 통해 단일 애플리케이션 바이너리로 여러 언어를 지원하며, 각 사용자가 선호하는 언어로 UI를 표시할 수 있다. 윈도우 2000부터 지원되었으며, 윈도우 비스타 이후 윈도우 버전별로 다양한 언어 팩을 제공한다. MUI는 `LoadString`과 같은 시스템 함수를 사용하여 리소스를 검색하며, 언어 기본 설정을 활용한다. 현지화 버전과 비교하여 사용자별 언어 설정 및 배포 유연성 측면에서 장점을 가진다.

더 읽어볼만한 페이지

  • 시스템 소프트웨어 - 유틸리티 소프트웨어
    유틸리티 소프트웨어는 컴퓨터의 운영 체제, 하드웨어, 응용 소프트웨어를 관리하고 성능을 향상시키거나 특정 작업을 수행하는 프로그램으로, 시스템 관리, 파일 관리, 데이터 복구, 보안 등의 기능을 제공하며 백업 소프트웨어, 바이러스 백신 등이 대표적이다.
  • 시스템 소프트웨어 - 가상 사설 서버
    가상 사설 서버(VPS)는 공유 웹 호스팅과 전용 호스팅의 중간 단계 서비스로, 가상화 기술을 기반으로 슈퍼유저 수준의 접근 권한, 높은 운용 자유도와 향상된 보안성을 제공하지만, 환경 유지 관리 필요성, 상대적으로 높은 비용, 회선 공유 문제 등의 단점도 가진다.
  • 윈도우 구성 요소 - 인터넷 익스플로러
    마이크로소프트가 개발한 웹 브라우저인 인터넷 익스플로러는 윈도우 운영 체제와의 통합으로 높은 시장 점유율을 유지했으나, 웹 표준 문제와 보안 취약점으로 비판받으며 2015년 엣지에 자리를 내주고 2022년 지원이 종료되었지만, 엣지의 IE 모드로 레거시 호환성을 유지하고 있다.
  • 윈도우 구성 요소 - 원격 데스크톱 서비스
    원격 데스크톱 서비스(RDS)는 네트워크를 통해 원격으로 컴퓨터의 데스크톱 환경에 접근할 수 있게 해주는 기술이며, 클라이언트 소프트웨어, 서버 구성 요소, 다양한 역할을 수행하는 구성 요소로 구성된다.
다중 언어 사용자 인터페이스

2. 용어

다음은 마이크로소프트 문서에서 사용되거나 파생된 MUI 관련 용어이다.[1]


  • 언어 중립적(LN, Language Neutral): 보는 사람의 언어와 관계없이 의미가 전달되는 것(예: 텍스트가 없는 이미지)을 말한다.
  • LN 리소스: 애플리케이션의 모든 언어 버전에서 공유되고 설치되는 리소스이다.
  • LN 파일: 애플리케이션 로직 및 언어 중립적 리소스를 포함하는 윈도우 바이너리 파일이다.
  • 언어별(LS, Language Specific): 보는 사람의 언어에 따라 의미가 크게 달라지는 것을 말한다. (주로 인터페이스 문자열, 텍스트가 포함된 이미지 등)

2. 1. 언어 중립적 (LN)

텍스트가 없는 이미지 등 보는 사람의 언어와 관계없이 의미가 전달되는 것을 말한다.[1]

2. 2. 언어별 (LS)

보는 사람의 언어에 따라 의미가 크게 달라지는 것을 설명한다. 가장 일반적인 LS 항목은 인터페이스 문자열이지만, 텍스트가 포함된 이미지와 같은 다른 항목일 수도 있다.[1]

LS 리소스 파일은 하나의 언어에 대해 현지화된 리소스 집합으로, MUI 파일이라고도 불린다.[1]

3. MUI 기술 개요

MUI 기술[1]은 윈도우 운영 체제에 통합되어 있으며, 응용 프로그램에서 현지화 가능한 자산을 리소스로 저장하고 MUI 지원 Win32 함수를 사용하여 읽을 수 있도록 한다.

응용 프로그램에서 MUI를 비교적 간단하게 구현하는 방법은 각 언어의 문자열을 바이너리 파일의 문자열 테이블 리소스로 저장하고 런타임에 `LoadString` Win32 함수를 사용하여 문자열을 로드하는 것이다. 이 경우 다른 MUI 관련 구성이나 코드는 필요하지 않다.

MUI는 다음과 같은 선택적 기능을 제공한다.


  • 배포 및 설치 유연성을 위해 각 언어의 리소스를 별도의 DLL에 저장할 수 있다.
  • 응용 프로그램은 시스템에서 정의된 사용자 기본 설정이 아닌 다른 언어를 사용하는 등 현지화 가능한 자산 소비를 제어하기 위해 전용 MUI 함수를 사용할 수 있다.
  • 현지화 가능한 자산은 리소스 이외의 형식으로도 저장할 수 있다.


MUI는 응용 프로그램 논리 파일(예: 리소스)에 모든 언어를 포함하는 전통적인 현지화 방식의 제한 사항을 완화하고자 설계되었다. MUI를 사용하면 다음과 같은 배포 시나리오가 가능하다.

  • 응용 프로그램 논리나 다른 언어 파일을 수정하지 않고 언어 파일만 설치하여 언어 지원을 추가할 수 있다.
  • 설치된 언어 파일을 수정하지 않고 응용 프로그램 논리 파일만 설치하여 새로운 기능을 추가하거나 버그를 수정할 수 있다.

3. 1. 리소스 저장 방식

MUI 기술[1]은 윈도우 운영 체제에 통합되어 있으며, 현지화 가능한 자산을 정해진 방식으로 리소스로 저장하고 MUI 지원 Win32 함수를 사용하여 리소스를 읽음으로써 응용 프로그램에서 활용할 수 있다.

응용 프로그램에서 MUI를 비교적 간단하게 구현하는 방법은 각 언어의 문자열을 바이너리 파일의 문자열 테이블 리소스로 저장하고 런타임에 `LoadString` Win32 함수를 사용하여 문자열을 로드하는 것이다. 다른 MUI 관련 구성이나 코드는 필요하지 않다.

MUI는 윈도우 바이너리(DLL, EXE, SYS) 파일에 저장된 현지화된 리소스, 일반적으로 DLL 파일을 지원한다.

언어별 리소스는 응용 프로그램 바이너리 또는 MUI(일명 LS) 파일, 즉 언어별로 하나씩 저장할 수 있다. MUI가 리소스를 찾으려면 MUI 파일이 관련 LN 파일과 동일한 디렉토리에 있어야 하며 LN 파일과 ".''LCID''.mui"를 더한 이름으로 지정해야 한다. 예를 들어, LN 파일이 '''my-lib.dll'''인 경우, en-US에 대한 MUI 파일은 '''my-lib.dll.0409.mui'''로 명명된다.

문자열 리소스는 다음과 같이 문자열 테이블로 코딩된다.

```text

LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL

STRINGTABLE

BEGIN

1 L"메시지 텍스트"

END

3. 2. 리소스 검색

MUI 기술은 Windows 운영 체제에 통합되어 있으며, 현지화 가능한 자산을 리소스로 저장하고 MUI 지원 Win32 함수를 사용하여 리소스를 읽음으로써 응용 프로그램에서 활용할 수 있다.[1]

응용 프로그램에서 MUI를 간단하게 구현하는 방법은 각 언어의 문자열을 바이너리 파일의 문자열 테이블 리소스로 저장하고 런타임에 `LoadString` Win32 함수를 사용하여 문자열을 로드하는 것이다. 다른 MUI 관련 구성이나 코드는 필요하지 않다.

다수의 응용 프로그램 리소스를 읽는 Win32 함수, 예를 들어 LoadString, FormatMessage 및 LoadImage는 MUI가 활성화되어 있다.[3]

각 함수는 응용 프로그램 리소스 또는 관련 MUI 파일에서 전역 언어 환경 설정에 따라 선택된 언어에 대한 리소스를 읽으려고 시도한다. 첫 번째 선호 언어에 대한 리소스 로딩이 실패하면 함수는 다음 선호 언어를 시도하고, 모든 환경 설정을 시도할 때까지 계속된다. 모든 선호 언어에 대한 로딩이 실패하면 LN 파일을 시도한다.

가장 일반적으로 사용되는 함수는 문자열 테이블 리소스에서 문자열을 로드하는 LoadString이다. 다음은 LoadString을 사용하는 예이다.

```c

wchar_t *resourceCharArray;

int resourceLength = LoadStringW(moduleHandle, resourceId, (LPWSTR)&resourceCharArray, 0);

if (!resourceLength)

{

MessageBoxW(NULL, L"Unable to find resource.", NULL, MB_ICONERROR);

return -1;

}

wchar_t *text = (LPWSTR)malloc((resourceLength + 1) * sizeof(wchar_t));

wcsncpy(text, resourceCharArray, resourceLength);

text[resourceLength] = L'\0'; // null terminate

```

이 코드는 리소스 텍스트 문자 버퍼의 주소를 검색한다. 그런 다음 문자를 새 버퍼로 복사하고 null 종결자를 추가한다. LoadString이 문자열을 전달된 버퍼에 복사하도록 할 수도 있지만, 고정 길이 버퍼를 사용해야 하는 단점이 있다.

FormatMessage 역시 MUI가 활성화되어 있다. 그러나 FormatMessage는 '문자열' 테이블이 아닌 '메시지' 테이블에서 읽으며, 레이먼드 첸(Raymond Chen)은 "실제로 메시지 테이블을 사용하는 사람은 아무도 없다"라고 말했다.[4]

3. 3. 리소스 외 저장소 및 검색

MUI 기술은 윈도 운영 체제에 통합되어 있으며, 현지화 가능한 자산을 리소스로 저장하고 MUI 지원 Win32 함수를 사용하여 읽을 수 있다.[1]

응용 프로그램에서 MUI를 간단하게 구현하는 방법은 각 언어의 문자열을 바이너리 파일의 문자열 테이블 리소스로 저장하고, 런타임에 LoadString Win32 함수를 사용하여 불러오는 것이다. 다른 구성이나 코드는 필요하지 않다.

MS 문서는 UI 에셋을 리소스로 저장하는 것을 권장하지만, XML, JSON 또는 일반 텍스트 파일과 같은 다른 파일 형식도 지원한다.[5] 즉, 응용 프로그램이 MUI의 리소스 검색 기능을 반드시 사용할 필요는 없으며, 자체적인 사용자 지정 UI 에셋 검색 로직을 사용할 수 있다.

MUI를 활성화하려면 응용 프로그램이 시스템 언어 설정을 사용해야 한다. 사용자 지정 UI 에셋 검색 로직은 선택적으로 MUI 함수인 GetFileMUIPath를 사용하여 MUI 파일 위치 및 명명 규칙을 활용할 수 있다.

4. 언어 기본 설정

시스템은 모든 사용자가 공유하며 새 사용자의 기본값으로 사용될 수 있는 시스템 언어와 각 사용자의 언어 선택을 저장한다. 사용자는 시스템 제어판을 통해 이러한 설정을 수정할 수 있지만, 응용 프로그램에서는 수정할 수 없다.[2]

이러한 기본 설정은 운영 체제(OS)가 UI 요소에 사용하는 언어를 제어한다. 응용 프로그램도 이러한 기본 설정을 사용할 수 있으며, MUI 지원 시스템 함수(예: `LoadString`)를 통해 자동적이고 투명하게 사용할 수 있다(MUI 관련 코드를 사용할 필요 없음). 그러나 이러한 기본 설정 사용은 선택 사항이며 사용자 정의할 수 있다. 응용 프로그램은 언어 기본 설정을 무시하도록 설계하거나, MUI 지원 시스템 함수에서 제공하는 방법 이외의 방식으로 사용할 수도 있다.[2]

응용 프로그램은 MUI 함수를 사용하여 언어 기본 설정을 읽을 수 있다. 사용자 선택을 기본값으로 하며 기본 설정 순서로 언어 목록을 제공한다. 이러한 기본 설정은 시스템, 사용자, 프로세스 및 스레드 수준에서 제공된다.[2]

응용 프로그램은 MUI의 동작에 영향을 주기 위해 (`SetThreadPreferredUILanguages` 및 기타 함수를 통해) 이러한 언어 기본 설정 목록을 수정할 수 있다.[2]

4. 1. 사용자 언어 설정

시스템은 모든 사용자가 공유하고 새 사용자의 기본값으로 사용될 수 있는 시스템 언어와 각 사용자의 언어 선택을 저장한다. 사용자는 시스템 제어판을 통해 이러한 설정을 수정할 수 있지만, 응용 프로그램에서는 수정할 수 없다.[2]

이러한 기본 설정은 운영 체제(OS)가 UI 요소에 사용하는 언어를 제어한다. 응용 프로그램도 이러한 기본 설정을 사용할 수 있으며, MUI 지원 시스템 함수(예: `LoadString`)를 통해 자동적이고 투명하게 사용할 수 있다(MUI 관련 코드를 사용할 필요 없음). 그러나 이러한 기본 설정의 사용은 선택 사항이며 사용자 정의할 수 있다. 응용 프로그램은 언어 기본 설정을 무시하도록 설계하거나, MUI 지원 시스템 함수에서 제공하는 방법 이외의 방식으로 사용할 수도 있다.[2]

응용 프로그램은 MUI 함수를 사용하여 언어 기본 설정을 읽을 수 있다. [가정된] 사용자 선택을 기본값으로 하며 기본 설정 순서로 언어 목록을 제공한다. 이러한 기본 설정은 시스템, 사용자, 프로세스 및 스레드 수준에서 제공된다. [상위 수준에서 변경하면 하위 수준의 기본 설정이 수정된다고 가정한다.][2]

응용 프로그램은 MUI의 동작에 영향을 주기 위해 (`SetThreadPreferredUILanguages` 및 기타 함수를 통해) 이러한 언어 기본 설정 목록을 수정할 수도 있다.[2]

4. 2. 응용 프로그램에서의 활용

시스템은 모든 사용자가 공유하고 새 사용자의 기본값으로 사용될 수 있는 시스템 수준의 언어 선택과 각 사용자에 대한 언어 선택을 저장한다. 이러한 선택 사항은 사용자가 시스템 제어판을 통해 수정할 수 있지만, 응용 프로그램에서는 수정할 수 없다.

이러한 기본 설정은 운영 체제(OS)가 UI 요소에 사용하는 언어를 제어한다. 응용 프로그램도 이러한 기본 설정을 사용할 수 있으며, MUI 지원 시스템 함수(예: `LoadString`)를 통해 자동적이고 투명하게 사용할 수 있다(MUI 관련 코드를 사용할 필요 없음). 그러나 이러한 기본 설정 사용은 선택 사항이며 사용자 정의할 수 있다. 응용 프로그램은 언어 기본 설정을 무시하도록 설계할 수 있다. 또는 MUI 지원 시스템 함수에서 제공하는 방법 이외의 방식으로 사용할 수도 있다.

응용 프로그램은 MUI 함수[2]를 사용하여 언어 기본 설정을 읽을 수 있다. [가정된] 사용자 선택을 기본값으로 하며 기본 설정 순서로 언어 목록을 제공한다. 이러한 기본 설정은 시스템, 사용자, 프로세스 및 스레드 수준에서 제공된다. [상위 수준에서 변경하면 하위 수준의 기본 설정이 수정된다고 가정한다.]

응용 프로그램은 MUI의 동작에 영향을 주기 위해 (`SetThreadPreferredUILanguages` 및 기타 함수를 통해) 이러한 언어 기본 설정 목록을 수정할 수 있다. 예를 들면 다음과 같다.

```c

LPCWSTR languageIdSpec = L"en-US\0";

ULONG langCount = 1;

if (!SetThreadPreferredUILanguages(MUI_LANGUAGE_NAME, languageIdSpec, &langCount))

MessageBoxW(NULL, L"Unable to set thread preferred UI language.", NULL, MB_ICONERROR);

5. 윈도우 버전별 MUI

MUI는 윈도우 2000에서 처음 도입되었으며, 이후 모든 윈도우 버전에서 지원되고 있다.[22] 윈도우 비스타 엔터프라이즈와 얼티밋 에디션에서 사용할 수 있으며, 얼티밋 엑스트라를 통해 이용 가능하다. 윈도우 8/RT를 기점으로 모든 윈도우 에디션에서 모든 언어팩을 다운로드 및 설치할 수 있게 되었다.[22]

5. 1. 윈도우 2000 및 XP

MUI는 윈도우 2000에서 처음 도입되었으며, 이후 모든 윈도우 버전에서 지원되고 있다. 이러한 버전의 MUI 제품은 마이크로소프트를 통한 볼륨 라이선스 계약을 통해서만 구할 수 있었고, 소매 채널에서는 구할 수 없었다. 다만, 일부 OEM에서 MUI 제품을 배포하기도 했다.

윈도우 XP까지, MUI 팩은 영어 버전 위에 적용되어 현지화된 사용자 환경을 제공했으며, 총 5개의 MUI 팩 세트가 있었다.

5. 2. 윈도우 비스타

윈도우 비스타는 다중 언어 사용자 인터페이스(MUI) 기술을 향상시켜 영어 리소스를 애플리케이션 로직 이진 파일로부터 분리하였다. 애플리케이션 로직 파일은 이제 언어 중립적, 즉 언어 독립적이다. 다시 말해, 애플리케이션 로직 파일은 더 이상 영어를 중심으로 하지 않는다. 이러한 분리를 통해 Windows의 핵심 바이너리를 변경하지 않고도 언어를 완전히 변경할 수 있으며, 동일한 애플리케이션 로직 바이너리를 사용하여 여러 언어를 설치할 수 있다. 언어는 Windows Vista에서 사용자 인터페이스의 일부 또는 전체를 현지화하는 데 필요한 리소스를 포함하는 언어 팩으로 적용된다.

MUI 팩은 윈도우 비스타 Enterprise 사용자와 얼티메이트 엑스트라를 통해 Windows Vista Ultimate 사용자에게 제공된다.

Windows Vista부터 관련된 MUI API 세트가 애플리케이션 개발을 위해 개발자에게도 제공된다.

출시 당시 다음 16개의 언어 팩이 출시되었다.

언어 팩
Dansk|덴마크어da
Deutsch|독일어de
English|영어영어
Español|스페인어es
Français|프랑스어프랑스어
Italiano|이탈리아어it
Nederlands|네덜란드어nl
Norsk bokmål|노르웨이어no
Suomi|핀란드어fi
Svenska|스웨덴어sv
Русский|러시아어ru
한국어|한국어한국어
日本語|일본어일본어



2007년 10월 23일, 나머지 19개의 언어 팩이 출시되었다.

언어 팩
Čeština|체코어cs
Eesti|에스토니아어et
Hrvatski|크로아티아어hr
Latviešu|라트비아어lv
Lietuvių|리투아니아어lt
Magyar|헝가리어hu
Polski|폴란드어pl
Português (Portugal)|포르투갈어 (포르투갈)pt
Română|루마니아어ro
Slovenčina|슬로바키아어sk
Slovenščina|슬로베니아어sl
Srpski|세르비아어 (라틴)sr
Türkçe|터키어tr
Ελληνικά|그리스어el
Български|불가리아어bg
Українська|우크라이나어uk
עברית|히브리어he
العربية|아랍어ar
ไทย|태국어th


5. 3. 윈도우 7

윈도우 7 엔터프라이즈 및 얼티밋 에디션 사용자는 MUI를 사용할 수 있다.

윈도우 7부터 마이크로소프트는 "MUI 팩"을 "언어 팩"이라고 부르기 시작했다. 이는 언어 인터페이스 팩(LIP)과 혼동해서는 안 된다.[9]

5. 4. 윈도우 8/8.1/RT

윈도우 8/RT부터 모든 윈도우 에디션에서 모든 언어 팩을 다운로드 및 설치할 수 있게 되었다.[22] 출시 당시 15개의 언어 팩이 출시되었고,[10] 2009년 10월 31일에는 22개의 언어 팩이 추가로 출시되었다.

윈도우 8/RT부터 대부분의 윈도우 에디션은 몇 가지 예외를 제외하고 모든 언어 팩을 다운로드하여 설치할 수 있다.[13]

  • 단일 언어 에디션 윈도우에서는 윈도우 7 및 이전 버전의 Enterprise 또는 Ultimate 에디션과 동일하게 하나의 언어 팩만 설치할 수 있다.[14]
  • OEM 버전 윈도우에서는 미리 설치되거나 다운로드할 수 있는 언어 팩이 장치 제조업체와 구매 국가/지역(및 셀룰러 연결 장치의 경우 이동 통신사)에 따라 다르다. 이는 지역 시장 기능과 모두를 위한 기능을 혼합한 것이다. 제조업체 및/또는 무선 통신사는 여러 개의 표시 언어를 장치에 미리 설치할 수 있지만, 각 제조업체 및/또는 무선 통신사는 두 개의 서로 다른 언어 세트(미리 로드된 언어 세트와 최종 사용자가 설치할 수 있는 언어 세트)를 설치한다. 이 규칙은 Windows Phone 7[15] 이후의 윈도우 폰과 Windows 8 이후의 PC에서 사용되었으며, 윈도우 10 버전 1803에서 삭제되었다가 윈도우 10 버전 1809부터 다시 도입되었다. 최종 사용자는 미디어 생성 도구를 통해 클린 설치를 수행하여 지역 잠금을 우회하고 원하는 모든 표시 언어를 설치함으로써 OEM 라이선스 위에 소매 라이선스를 설치할 수 있다.


윈도우 업데이트 프로세스는 현재 설치된 표시 언어에 영향을 미치지 않지만, OEM에서 제공하는 새로 출시된 언어 팩(PC만 해당)에 대한 접근 권한을 최종 사용자에게 제공할 수 있다. 그러나 새로운 기능 업데이트를 설치할 때 초기 설정 프로세스 중에 설정된 언어로 표시 언어가 다시 변경될 수 있다.

한편, 특정 언어 팩은 Xbox 콘솔 및 Surface Duo에서만 지원된다.

일부 LIP 팩은 특정 MUI 팩(기본 언어)이 있거나 호환되어야 설치할 수 있다.[17]

5. 5. 윈도우 10

윈도우 8/RT를 기점으로 모든 윈도우 에디션에서 모든 언어팩을 내려받아 설치할 수 있다.[22]

Windows 10 버전 1803부터, 마이크로소프트는 이전의 "언어 팩" 대신 "로컬 환경 팩" (LXP)이라는 용어를 일부 스토어에서 사용하기 시작했지만, 작동 방식은 동일하다.[18] Windows 설정에서 설치하는 것 외에도, 110개의 LXP는 마이크로소프트 스토어(앱 및 웹)를 통해서도 사용할 수 있으며, 마이크로소프트 스토어를 통해 Windows 소비자 에디션에 원격 설치가 가능하다.[19] 마이크로소프트 스토어의 모든 응용 프로그램과 마찬가지로, 해당 Windows 장치와 호환되는 LXP만 마이크로소프트 스토어 앱에 표시된다.

LXP는 일반적인 Windows 업데이트 주기 외에 마이크로소프트 스토어를 통해 업데이트된다.[20]

5. 6. 윈도우 Phone

윈도우 폰은 처음에 다음 6개의 언어를 지원했다.



2011년 9월 27일, 윈도우 폰 7.5가 출시되면서 다음 20개의 언어가 추가되었다 (터키어와 우크라이나어는 윈도우 폰 8까지 표시 언어로 지원되지 않음).[11] 윈도우 폰 7의 첫 번째 LIP는 Tango 업데이트로 인도네시아어말레이어였다.[12]


6. 지원 언어

OS 버전별 지원 언어는 다음과 같다.[11][12]

PC 버전과 모바일 버전에서 각 플랫폼별로 지원하는 언어를 상세하게 다루고 있으므로, 여기서는 OS 버전별 지원 언어에 대한 간략한 정보만 제시한다.

6. 1. PC 버전

PC용 윈도우 버전별 MUI 지원 언어는 다음과 같다.

Windows 버전별 MUI 언어 팩
언어영어 이름2000XPVista7.07.18.08.11011
아랍어العربية
불가리아어Български
카탈루냐어Català
체코어Čeština
덴마크어Dansk
독일어Deutsch
그리스어Ελληνικά
영어 (영국)English (United Kingdom)
영어 (미국)English (United States)
스페인어 (스페인)Español (España)
스페인어 (멕시코)Español (México)
에스토니아어Eesti
바스크어Euskara
핀란드어Suomi
프랑스어 (캐나다)Français (Canada)
프랑스어 (프랑스)Français (France)
갈리시아어Galego
히브리어עברית
크로아티아어Hrvatski
헝가리어Magyar
인도네시아어Indonesia
이탈리아어Italiano
일본어日本語
한국어한국어
리투아니아어Lietuvių
라트비아어Latviešu
노르웨이어(보크몰)Norsk bokmål
네덜란드어Nederlands
폴란드어Polski
포르투갈어 (브라질)Português (Brasil)
포르투갈어 (포르투갈)Português (Portugal)
루마니아어Română
러시아어Русский
슬로바키아어Slovenčina
슬로베니아어Slovenščina
세르비아어 (라틴)Srpski
스웨덴어Svenska
태국어ไทย
터키어Türkçe
우크라이나어Українська
베트남어Tiếng Việt
중국어 (간체)中文 (简体)
중국어 (홍콩)中文 (香港特別行政區)
중국어 (번체)中文 (繁體)



Windows 버전별 언어 인터페이스 팩
언어영어 이름기본 언어 필요XPVista7.07.18.08.11011
아프리칸스어Afrikaans영어
암하라어አማርኛ영어
아삼어অসমীয়া영어
아제르바이잔어Azərbaycan영어
벨라루스어Беларуская러시아어
벵골어 (방글라데시)বাংলা (বাংলাদেশ)영어
벵골어 (인도)বাংলা (ভারত)영어
보스니아어 (키릴)Босански러시아어
보스니아어 (라틴)Bosanski영어
카탈루냐어 (스페인)Català영어
카탈루냐어 (스페인, 발렌시아)Valencià스페인어
체로키어ᏣᎳᎩ영어
웨일스어Cymraeg영어
바스크어Euskara스페인어
페르시아어 (이란)فارسى영어
필리피노어Filipino영어
아일랜드어Gaeilge영어
스코틀랜드 게일어Gàidhlig영어
갈리시아어Galego스페인어
구자라트어ગુજરાતી영어
하우사어Hausa영어
힌디어हिन्दी영어
아르메니아어Հայերեն영어
인도네시아어Indonesia영어
이보어Igbo영어
아이슬란드어Íslenska영어
이누이트어ᐃᓄᒃᑎᑐᑦ영어
조지아어ქართული영어
카자흐어Қазақ тілі영어
크메르어ខ្មែរ영어
칸나다어ಕನ್ನಡ영어
콘칸어कोंकणी영어
중앙 쿠르드어کوردیی ناوەڕاست영어
키르기스어Кыргызча러시아어
룩셈부르크어Lëtzebuergesch프랑스어
라오어ລາວ태국어
마오리어Te reo Māori영어
마케도니아어Македонски영어
말라얄람어മലയാളം영어
몽골어Монгол영어
마라티어मराठी영어
말레이어 (브루나이)Melayu (Brunei)영어
말레이어 (말레이시아)Melayu (Malaysia)영어
몰타어Malti영어
네팔어नेपाली영어
노르웨이어(뉘노르스크)Norsk nynorsk노르웨이어(보크몰)
북부 소토어Sesotho sa Leboa영어
오리야어ଓଡ଼ିଆ영어
펀자브어 (아랍어, 파키스탄)ਪੰਜਾਬੀ영어
펀자브어 (구르무키, 인도)ਪੰਜਾਬੀ영어
페르시아어 (아프가니스탄)درى영어
키체어K'iche'스페인어
케추아어Runasimi스페인어
키냐르완다어Kinyarwanda영어
신디어سنڌي영어
싱할라어සිංහල영어
알바니아어Shqip영어
세르비아어 (보스니아 & 헤르체고비나)Српски (Босна и Херцеговина)영어
세르비아어 (세르비아)Српски (Србија)세르비아어 (라틴)
스와힐리어Kiswahili영어
타밀어தமிழ்영어
텔루구어తెలుగు영어
타지크어Тоҷикӣ러시아어
티그리냐어ትግር영어
투르크멘어Türkmen dili러시아어
세츠와나어Setswana영어
타타르어Татар러시아어
위구르어ئۇيغۇرچە중국어 (간체)
우르두어اُردو영어
우즈베크어O‘zbek영어
베트남어Tiếng Việt영어
월로프어Wolof프랑스어
코사어IsiXhosa영어
요루바어Èdè Yorùbá영어
줄루어IsiZulu영어


6. 2. 모바일 버전

Windows Phone의 다국어 사용자 인터페이스는 버전 7.0부터 지원되기 시작했으며, 출시 당시에는 다음 6개의 언어만 지원되었다.

  • 독일어
  • 영어 (영국)
  • 영어 (미국)
  • 스페인어
  • 프랑스어
  • 이탈리아어


2011년 9월 27일 Windows Phone 7.5가 출시되면서 20개의 언어가 추가되었다(터키어와 우크라이나어는 Windows Phone 8까지 표시 언어로 지원되지 않음).[11] Windows Phone 7의 첫 번째 LIP는 Tango 업데이트로 인도네시아어와 말레이어였다.[12]

OS 버전별 지원 언어는 다음과 같다.

새로운 Windows Phone 플랫폼용 언어 팩
언어영어 이름7.07.57.77.88.08.0.28.18.1.210
아프리칸스어아프리칸스어
암하라어암하라어
아랍어아랍어
아제르바이잔어아제르바이잔어
벨라루스어벨라루스어
불가리아어불가리아어
벵골어벵골어
카탈루냐어카탈루냐어
체코어체코어
덴마크어덴마크어
독일어독일어
그리스어그리스어
영어 (영국)영어 (영국)
영어 (미국)영어 (미국)
스페인어 (스페인)스페인어 (스페인)
스페인어 (멕시코)스페인어 (멕시코)
에스토니아어에스토니아어
바스크어바스크어
페르시아어페르시아어
핀란드어핀란드어
필리핀어필리핀어
프랑스어 (캐나다)프랑스어 (캐나다)
프랑스어 (프랑스)프랑스어 (프랑스)
갈리시아어갈리시아어
하우사어하우사어
히브리어히브리어
힌디어힌디어
크로아티아어크로아티아어
헝가리어헝가리어
인도네시아어인도네시아어
아이슬란드어아이슬란드어
이탈리아어이탈리아어
일본어일본어
카자흐어카자흐어
크메르어크메르어
칸나다어칸나다어
한국어한국어
라오어라오어
리투아니아어리투아니아어
라트비아어라트비아어
마케도니아어마케도니아어
말라얄람어말라얄람어
말레이어말레이어
노르웨이어 보크몰노르웨이어 보크몰
네덜란드어네덜란드어
폴란드어폴란드어
포르투갈어 (브라질)포르투갈어 (브라질)
포르투갈어 (포르투갈)포르투갈어 (포르투갈)
루마니아어루마니아어
러시아어러시아어
슬로바키아어슬로바키아어
슬로베니아어슬로베니아어
알바니아어알바니아어
세르비아어세르비아어
스웨덴어스웨덴어
스와힐리어스와힐리어
타밀어타밀어
텔루구어텔루구어
태국어태국어
터키어터키어
우크라이나어우크라이나어
우즈베크어우즈베크어
베트남어베트남어
중국어 (간체)중국어 (간체)
중국어 (홍콩)중국어 (홍콩)
중국어 (번체)중국어 (번체)


7. MUI 구현

응용 프로그램에서 MUI를 구현하려면 기본적으로 응용 프로그램 코드에서 `LoadString`을 사용하여 리소스를 읽고, 각 언어에 대한 리소스 소스 코드(RC) 파일을 작성해야 한다. `LoadString`은 사용자 선호도와 시스템 설정을 사용하여 사용자가 선호하는 언어로 된 리소스를 읽는다. 이때 각 언어를 별도의 RC 파일에 저장하는 것이 좋다.

이러한 기본 작업을 완료하면 응용 프로그램이 MUI를 지원하게 된다. 그러나 이 방식은 모든 언어를 응용 프로그램 바이너리의 리소스에 저장하므로 '언어 중립적'이지 않다. 이 구조는 MUI의 모든 런타임 현지화 이점과 단일 파일 배포의 간편함을 제공하지만, MUI가 제공하는 배포 유연성은 활용할 수 없다.[1]

7. 1. 기본 작업

MUI를 지원하고 구현하려면 다음과 같은 기본적인 작업이 필요하다.

  • 응용 프로그램 코드에서 LoadString|로드스트링영어을 사용하여 리소스를 읽는다. LoadString|로드스트링영어은 사용자가 선호하는 언어, 시스템 설정을 고려하여 해당 언어로 된 리소스를 읽어들인다.[1]
  • 각 언어에 대한 리소스 소스 코드(RC)를 작성한다. 이때 각 언어를 별도의 RC 파일에 저장하는 것이 좋다.[1]


위 기본 작업을 완료하면 응용 프로그램은 MUI를 지원하게 된다. 추가적으로, 응용 프로그램에서 선택적으로 활용할 수 있는 MUI의 다른 기능들도 존재한다.[1]

기본 작업은 모든 언어를 응용 프로그램 바이너리의 리소스에 저장하는 것을 의미한다. 즉, '언어 중립적'이지 않다. 이러한 구조는 MUI의 모든 런타임 현지화 이점을 제공하고, 간단하게 단일 파일로 배포할 수 있지만, MUI가 제공하는 배포 유연성은 활용할 수 없다. 배포 유연성을 활용하려면 다음과 같은 추가 작업이 필요하다.[1]

  • 모든 LS 리소스를 제외하도록 응용 프로그램 바이너리 프로젝트를 구성하여 LN 파일을 만든다.[1]
  • 각 언어를 리소스 DLL로 빌드하도록 프로젝트를 구성한다. LN 파일 + "''LCID''.mui"와 동일한 이름으로 지정하여 MUI 파일을 만든다.[1]
  • LN 파일과 동일한 디렉터리에 MUI 파일을 배포/설치한다.[1]


리소스 이외의 형식으로 현지화된 자산을 저장하려면, 응용 프로그램은 언어 기본 설정 시스템 설정(GetThreadUILanguage|겟스레드유아이랭귀지영어 참조)에 따라 런타임에 자산을 읽는 메커니즘을 구현해야 한다. 즉, 응용 프로그램은 LoadString|로드스트링영어을 사용하지 않고 시스템 언어 기본 설정에 따라 UI 자산을 로드한다. 응용 프로그램은 GetFileMUIPath|겟파일MUI패스영어를 사용하여 언어별 MUI 파일 위치 및 명명 규칙을 활용할 수 있다.[1]

7. 2. 배포 유연성 확보

MUI의 배포 유연성을 확보하기 위해서는 다음과 같은 추가 작업을 할 수 있다.

  • 응용 프로그램 바이너리 프로젝트를 구성하여 모든 LS 리소스를 제외하고 LN 파일을 만든다.
  • 각 언어를 리소스 DLL로 빌드하도록 프로젝트를 구성한다. LN 파일 + "''LCID''.mui"와 동일한 이름으로 지정하여 MUI 파일을 만든다.
  • LN 파일과 동일한 디렉터리에 MUI 파일을 배포/설치한다.


리소스 이외의 형식으로 현지화된 자산을 저장하려면, 응용 프로그램은 언어 기본 설정 시스템 설정(GetThreadUILanguage 참조)에 따라 런타임에 자산을 읽는 메커니즘을 구현해야 한다. 즉, 응용 프로그램은 LoadString을 사용하지 않고 시스템 언어 기본 설정에 따라 UI 자산을 로드한다. 응용 프로그램은 GetFileMUIPath를 사용하여 언어별 MUI 파일 위치 및 명명 규칙을 활용할 수 있다.

8. 현지화 버전과의 비교

MUI 기술[1]은 소프트웨어 패키지를 세계화하고 배포하기 위한 구기술인 '현지화 버전'의 문제점을 개선하기 위해 개발되었다. MUI는 현지화 버전과 비교하여 다음과 같은 차이점과 장점을 가진다.

MUI 팩을 통해 현지화된 Windows는 현지화 버전과 동일하게 대상 언어로 메뉴와 대화 상자를 표시한다. 하지만, 현지화 버전만 번역된 파일 및 폴더 이름을 사용한다.

Windows 현지화 버전은 기본 운영 체제뿐만 아니라 파일 및 폴더 이름, 개체 이름, 레지스트리의 문자열, 그리고 Windows에서 사용되는 기타 모든 내부 문자열을 특정 언어로 번역한다. Windows 현지화 버전은 이전 현지화 버전에서 업그레이드를 지원하며 사용자 인터페이스 리소스가 완전히 현지화되지만, 제품의 MUI 버전에서는 그렇지 않다.

8. 1. 관리 기능

MUI 버전은 Microsoft 관리 콘솔 항목 및 레지스트리 항목과 같은 번역된 관리 기능을 포함하지 않는다.[8]

8. 2. 사용자별 언어 설정

MUI 버전의 장점 중 하나는 컴퓨터의 각 사용자가 서로 다른 언어를 사용할 수 있다는 것이다.[8] OS의 현지화 버전에서는 이것이 불가능하다. 현지화된 응용 프로그램에서는 가능할 수 있지만, 각 언어별로 여러 버전을 설치해야 하며, 이는 응용 프로그램 저장 공간 및 사이드 바이 사이드 설치 문제를 야기할 수 있다. MUI를 사용하면 단일 버전이 여러 언어를 지원하며, OS 및 응용 프로그램은 사용자가 선호하는 언어를 사용한다. 또한, 동일한 OS에서 OS가 선택한 언어와 다를 수 있고 OS에서 지원하지 않는 언어일 수도 있는 응용 프로그램에서 지원하는 언어를 사용하는 응용 프로그램을 호스팅할 수 있다.

9. 특허

MUI 기술은 "운영 체제를 위한 다국어 사용자 인터페이스"라는 제목의 국제 특허로 보호받고 있다.[21] 발명자는 비욘 C. 레티그(Bjorn C. Rettig), 에드워드 S. 밀러(Edward S. Miller), 그레고리 윌슨(Gregory Wilson), 샨 쉬(Shan Xu)이다.

참조

[1] 웹사이트 Multilingual User Interface - Win32 apps https://docs.microso[...] 2022-07-10
[2] 웹사이트 Multilingual User Interface Functions - Win32 apps https://docs.microso[...] 2022-07-10
[3] 웹사이트 Loading Language Resources - Win32 apps https://docs.microso[...] 2022-07-10
[4] 웹사이트 Why can't I get FormatMessage to load my resource string? https://devblogs.mic[...] 2022-07-08
[5] 웹사이트 Supporting System Language Settings - Win32 apps https://docs.microso[...] 2022-07-09
[6] 웹사이트 Preparing a Resource Configuration File - Win32 apps https://docs.microso[...] 2022-07-10
[7] 웹사이트 Using Registry String Redirection - Win32 apps https://docs.microso[...] 2022-07-10
[8] 웹사이트 About Multilingual User Interface https://docs.microso[...] Microsoft 2022-06-22
[9] 웹사이트 How To Install Language Packs In Windows 7 http://www.thewindow[...] The Windows Club 2016-04-29
[10] 웹사이트 Windows 7 RTM GA Launch and MSDN/TechNet Release Schedule Roadmap « My Digital Life https://www.mydigita[...] 2023-07-26
[11] 웹사이트 Windows Phone around the world: Language support in Mango https://blogs.window[...] 2023-11-22
[12] 웹사이트 Windows Phone at Mobile World Congress 2012 https://blogs.window[...] 2023-11-22
[13] 웹사이트 Language packs are available for Windows 8 and Windows RT https://support.micr[...] Microsoft 2016-04-29
[14] 웹사이트 Check whether your version of Windows supports multiple languages https://support.micr[...] 2022-01-10
[15] 웹사이트 Windows Phone around the world: Language support in Mango https://blogs.window[...] 2022-01-10
[16] 웹사이트 Get Samsung Notes https://www.microsof[...] 2022-01-10
[17] 웹사이트 Language packs for Windows https://support.micr[...] 2022-01-11
[18] 웹사이트 Local Experience Packs: What are they and when should you use them? https://techcommunit[...] 2022-01-10
[19] 웹사이트 Local Experience Packs https://www.microsof[...] 2022-01-10
[20] 웹사이트 Local Experience Packs https://support.micr[...] 2022-01-11
[21] 특허 Multilingual user interface for an operating system 2003-05-14
[22] 웹인용 Language packs are available for Windows 8 and Windows RT https://support.micr[...] 마이크로소프트 2016-04-29



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com